package org.dromara.oce.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.dromara.common.mybatis.annotation.DataColumn;
import org.dromara.common.mybatis.annotation.DataPermission;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.oce.domain.OceAdvertiserEverydayCost;
import org.dromara.oce.domain.dto.GetOceEverydayCostCensusDramaDataDTO;
import org.dromara.oce.domain.dto.GetOceEverydayCostCensusPitcherDataDTO;
import org.dromara.oce.domain.vo.OceAdvertiserEverydayCostVo;

import java.util.List;

/**
 * 广告主消耗记录Mapper接口
 *
 * @author Lion Li
 * @date 2024-12-24
 */
public interface OceAdvertiserEverydayCostMapper extends BaseMapperPlus<OceAdvertiserEverydayCost, OceAdvertiserEverydayCostVo> {

    @DataPermission({
        @DataColumn(key = "deptName", value = "dept_id")
    })
    Page<GetOceEverydayCostCensusPitcherDataDTO> getPitcherPageList(@Param("page") Page<OceAdvertiserEverydayCost> page, @Param("ew") Wrapper<OceAdvertiserEverydayCost> wrapper);
    @DataPermission({
        @DataColumn(key = "deptName", value = "dept_id")
    })
    List<GetOceEverydayCostCensusPitcherDataDTO> getPitcherPageList(@Param("ew") Wrapper<OceAdvertiserEverydayCost> wrapper);
    @DataPermission({
        @DataColumn(key = "deptName", value = "dept_id")
    })
    Page<GetOceEverydayCostCensusDramaDataDTO> getDramaPageList(@Param("page") Page<OceAdvertiserEverydayCost> page, @Param("ew") Wrapper<OceAdvertiserEverydayCost> wrapper);

    List<GetOceEverydayCostCensusDramaDataDTO> getDramaPageList(@Param("ew") Wrapper<OceAdvertiserEverydayCost> wrapper);

    @Override
    @DataPermission({
        @DataColumn(key = "deptName", value = "dept_id")
    })
    List<OceAdvertiserEverydayCost> selectList(IPage<OceAdvertiserEverydayCost> page, @Param(Constants.WRAPPER) Wrapper<OceAdvertiserEverydayCost> queryWrapper);

    @Override
    @DataPermission({
        @DataColumn(key = "deptName", value = "dept_id")
    })
    List<OceAdvertiserEverydayCost> selectList(@Param(Constants.WRAPPER) Wrapper<OceAdvertiserEverydayCost> queryWrapper);

    List<OceAdvertiserEverydayCost> selectJobList(@Param(Constants.WRAPPER) Wrapper<OceAdvertiserEverydayCost> queryWrapper);

}
